Bluetooth LE for iOS, tvOS and Android
使われてるのを気持ち見かける
static classなBluetoothLEHardwareInterfaceにいろいろ指示出しして使うタイプのアセット
API調査
AskForPermissions
Initialize
引数
bool asCentral
bool asPeripheral
Action action
Action<string> errorAction / <error>
初期化処理
asPeripheral(ペリフェラルとして初期化)は、iOSじゃないと動かないらしい
DeInitialize
FinishDeInitialize
BluetoothScanMode
スキャン頻度の設定?
BluetoothConnectionPriority
BluetoothAdvertisingMode
BluetoothAdvertisingPower
PauseMessages
ScanForBeacons
RequestMtu
ReadRSSI
ScanForPeripheralsWithServices
引数
string[] serviceUUIDs
Action<string, string> action / <Address, DeviceName>
Action<string, string, int, byte[]> actionAdvertisingInfo = null / <Address, DeviceName, rssi, bytes>
bool rssiOnly = false
bool clearPeripheralList = true
int recordType = 0xFF
サービスを探す
サービスが見つかるとactionがInvokeされる
BLEマウスである所のMX Anywhere 3を、ペアリング待ち受けにしたらInvokeされた
アドバタイズ情報をキャッチしたらactionAdvertisingInfoがInvokeされる
rssiが負の値なんだけど良いんだろうか
RetrieveListOfPeripheralsWithServices
StopScan
探すのを止める
StopBeaconScan
DisconnectAll
ConnectToPeripheral
引数
string name / 接続端末のアドレス
Action<string> connectAction / <address>
Action<string, string> serviceAction / <address, serviceUUID>
Action<string, string, string> characteristicAction / <address, serviceUUID, characteristicUUID>
Action<string> disconnectAction = null / <?>
コネクトしてデータのやり取りが出来るようにする
各コールバックで実行のタイミングだかなんだかがいろいろ違う
connectActionは最初の1回だけInvokeされる
ペリフェラル側で稼働させてるServiceの数だけ、serviceActionが呼び出される
Serviceの中で抱えてるCharacteristicの数だけ、characteristicActionが呼び出される。
厳密には、characteristicへのアクセスが可能になるとInvokeされる(なので、characteristicUUID = 0x2100のInvoke内で、characteristicUUID = 0x2101のReadを試みても失敗する)
ScanForPeripheralsWithServicesして見つけておかないと、コネクト出来ない模様。(いきなり端末アドレス決め打ちで接続しても動かない)
DisconnectPeripheral
ReadCharacteristic
引数
string name / 接続端末のアドレス
string service / サービスUUID
string characteristic / 特性UUID
Action<string, byte[]> / <characteristicUUID, data>
Characteristicに保存されている値を読み出す
コネクトして、対応するcharacteristicActionがInvokeされないと使えない
WriteCharacteristic
SubscribeCharacteristic
引数
Notice通信を依頼し、ペリフェラルからのPush通信を受け付ける
SubscribeCharacteristicWithDeviceAddress
UnSubscribeCharacteristic
PeripheralName
CreateService
RemoveService
RemoveServices
CreateCharacteristic
RemoveCharacteristic
RemoveCharacteristics
StartAdvertising
StopAdvertising
UpdateCharacteristicValue
FullUUID